//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#include <ddk.h>

//
// Device Drivers
//

// Console
#define DEVICENAME_CONSOLE          L"console"

EXTERN IDeviceDriver * CDECL CreateConsole(uint_t uDeviceNo, void *pvParameter);

// Boot file list driver
#define DEVICENAME_BOOTMODS         L"bootmods"

EXTERN IDeviceDriver * CDECL CreateBootModules(uint_t uDeviceNo, void *pv);

//slip protocal
#define DEVICENAME_SLIP             L"slip"

EXTERN IDeviceDriver * CDECL CreateSLIP(uint_t uDeviceNo, void *pvParameter);

// statserver
#define DEVICENAME_STATDDRIVER      L"mstatserver"
EXTERN IDeviceDriver * CDECL CreateMStatServer(uint_t uDeviceNo, void *pvParameter);


//
// Device Configurations
//
// NOTE: the device name can't be more than 31 words
STATIC DECL_DATAINIT DeviceConfig s_deviceConfigs[] = {
    { DEVICENAME_CONSOLE,           0, NULL },
    { DEVICENAME_BOOTMODS,          0, NULL },
    { DEVICENAME_SLIP,              DEVICENO_NONE, NULL },
    { DEVICENAME_STATDDRIVER,       DEVICENO_NONE, NULL },
};

//
// Driver Configurations
//
STATIC DriverConfig s_driverConfigs[] = {
    { DEVICENAME_CONSOLE,           &CreateConsole },
    { DEVICENAME_BOOTMODS,          &CreateBootModules },
    { DEVICENAME_SLIP,              &CreateSLIP },
    { DEVICENAME_STATDDRIVER,       &CreateMStatServer },
};

DzConfig dzcfg = {
	s_deviceConfigs,                // *pDeviceConfigs
	lengthof(s_deviceConfigs),      // uNumberOfDeviceConfigs

	s_driverConfigs,                // *pDriverConfigs
	lengthof(s_driverConfigs)       // uNumberOfDriverConfigs
};
